package com.usian.ai.pojo.vo;

/**
 * 分页对象，用于封装分页查询的参数
 * @TODO:
 * @Author:baimu
 * @Date:2024 12 05 11 29
 **/

import lombok.ToString;
import lombok.extern.slf4j.Slf4j;

@ToString
@Slf4j
public class PageVo {

    /**
     * 每页的记录数
     */
    private Integer pageSize;

    /**
     * 当前页码
     */
    private Integer pageNumber;

    /**
     * 获取每页的记录数
     * 如果未设置记录数，则默认为10
     *
     * @return 每页的记录数
     */
    public Integer getPageSize() {
        if(pageSize==null){
            pageSize=10;
        }

        // 创建分页对象，传入当前页码和每页大小，并进行边界值检查,最大每页100条记录
        pageSize = Math.min(Math.max(1, pageSize), 100);
        log.info("pageSize:{}",pageSize);
        return pageSize;
    }

    /**
     * 设置每页的记录数
     *
     * @param pageSize 每页的记录数
     */
    public void setPageSize(Integer pageSize) {
        this.pageSize = pageSize;
    }

    /**
     * 获取当前页码
     * 如果未设置页码，则默认为1
     *
     * @return 当前页码
     */
    public Integer getPageNumber() {
        if(pageNumber==null){
            pageNumber=1;
        }
        pageNumber = Math.max(1, pageNumber);
        log.info("pageNumber:{}",pageNumber);
        return pageNumber;
    }

    /**
     * 设置当前页码
     *
     * @param pageNumber 当前页码
     */
    public void setPageNumber(Integer pageNumber) {
        this.pageNumber = pageNumber;
    }
}

